package cin.ufpe.br.projetoESS.Negocio;

import java.sql.SQLException;

import cin.ufpe.br.projetoESS.Dados.RepositorioAnunciante;
import cin.ufpe.br.projetoESS.Dados.RepositorioAssinante;
import cin.ufpe.br.projetoESS.Dados.RepositorioClassificado;
import cin.ufpe.br.projetoESS.Dados.RepositorioDistribuidora;
import cin.ufpe.br.projetoESS.Dados.RepositorioFolhaPagamento;
import cin.ufpe.br.projetoESS.Dados.RepositorioFuncionario;
import cin.ufpe.br.projetoESS.Dados.RepositorioPontoVenda;
import cin.ufpe.br.projetoESS.Dados.RepositorioServico;
import cin.ufpe.br.projetoESS.Entidades.Anunciante;
import cin.ufpe.br.projetoESS.Entidades.Assinante;
import cin.ufpe.br.projetoESS.Entidades.Classificado;
import cin.ufpe.br.projetoESS.Entidades.Distribuidora;
import cin.ufpe.br.projetoESS.Entidades.FolhaPagamento;
import cin.ufpe.br.projetoESS.Entidades.Funcionario;
import cin.ufpe.br.projetoESS.Entidades.PontoVenda;
import cin.ufpe.br.projetoESS.Entidades.Servico;

public class ControleCadastro {
	
	private RepositorioFuncionario repositorioFuncionario;
	private RepositorioFolhaPagamento repositorioFolhaPagamento;
	private RepositorioServico repositorioServico;
	private RepositorioAnunciante repositorioAnunciante;
	private RepositorioClassificado repositorioClassificado;
	private RepositorioPontoVenda repositorioPontoVenda;
	private RepositorioDistribuidora repositorioDistribuidora;
	private RepositorioAssinante repositorioAssinante;
	
	public ControleCadastro(RepositorioFuncionario repositorioFuncionario,
			RepositorioFolhaPagamento repositorioFolhaPagamento,
			RepositorioServico repositorioServico,
			RepositorioAnunciante repositorioAnunciante,
			RepositorioClassificado repositorioClassificado,
			RepositorioPontoVenda repositorioPontoVenda,
			RepositorioDistribuidora repositorioDistribuidora,
			RepositorioAssinante repositorioAssinante) {
		this.repositorioFuncionario = repositorioFuncionario;
		this.repositorioFolhaPagamento = repositorioFolhaPagamento;
		this.repositorioServico = repositorioServico;
		this.repositorioAnunciante = repositorioAnunciante;
		this.repositorioClassificado = repositorioClassificado;
		this.repositorioPontoVenda = repositorioPontoVenda;
		this.repositorioDistribuidora = repositorioDistribuidora;
		this.repositorioAssinante = repositorioAssinante;
	}
	
	public void cadastrarFuncionario(Funcionario func) throws SQLException{
		this.repositorioFuncionario.inserirFuncionario(func);
	}
	
	public void cadastrarFolhaPagamento(FolhaPagamento folha) throws SQLException{
		this.repositorioFolhaPagamento.inserirFolhaPagamento(folha);
	}
	
	public void cadastrarServico(Servico servico) throws SQLException{
		this.repositorioServico.inserirServico(servico);
	}
	
	public void cadastrarAnunciante(Anunciante anunciante) throws SQLException{
		this.repositorioAnunciante.inserirAnunciante(anunciante);
	}
	
	public void cadastrarClassificado(Classificado classificado) throws SQLException{
		this.repositorioClassificado.inserirClassificado(classificado);
	}
	
	public void cadastrarPontoVenda(PontoVenda pontoVenda) throws SQLException{
		this.repositorioPontoVenda.inserirPontoVenda(pontoVenda);
	}
	
	public void cadastrarDistribuidora(Distribuidora distribuidora) throws SQLException{
		this.repositorioDistribuidora.inserirDistribuidora(distribuidora);
	}
	
	public void cadastrarAssinante(Assinante assinante) throws SQLException{
		this.repositorioAssinante.inserirAssinante(assinante);
	}
	
	public Assinante buscarAssinante (int contratoAssinante) throws SQLException{
		return this.repositorioAssinante.buscarAssinante(contratoAssinante);
	}
	
}
